package cn.bonoon.util;
//package cn.bonoon.plugins.util;
//
//import java.util.Collection;
//import java.util.List;
//import java.util.Map.Entry;
//
//import cn.bonoon.kernel.security.ChannelMenuMap;
//import cn.bonoon.kernel.security.MenuActionPrivilege;
//import cn.bonoon.kernel.security.MenuPrivilege;
//import cn.bonoon.kernel.web.menus.ActionInfo;
//import cn.bonoon.kernel.web.menus.ChannelInfo;
//import cn.bonoon.kernel.web.menus.MenuInfo;
//import cn.bonoon.kernel.web.menus.ModuleInfo;
//import cn.bonoon.kernel.web.menus.TabInfo;
//
///**
// * 权限树帮助类
// * @author Administrator
// *
// */
//public class PrivilegeHelper {
//	private static final String IMG_SRC_RES_CSS_ICONS_ACCEPT_PNG = "<img src='/res/css/icons/accept.png'/>";	
//	public static StringBuilder buildHtml(ChannelMenuMap premenus, Collection<ModuleInfo> modules) {
//		StringBuilder html = new StringBuilder();
//		html.append("<table width='90%' class='editor'><tr><th style='text-align:center;'>菜单</th><th style='text-align:center;'>操作</th></tr>");
//		for (ModuleInfo mi : modules) {
//			html.append("<tr><td>").append(mi.getName());
//			html.append("</td><td></td></tr>");
//			List<ChannelInfo> channels = mi.getChannels();
//			for (ChannelInfo ci : channels) {
//				MenuPrivilege pm = null;
//				if (null != premenus)
//					pm = premenus.get(ci.getId());
//				//String m = mi.getId() + S + ci.getId();
//				html.append("<tr><td style='padding-left:30px;'>");
//				html.append(ci.getName()).append("</td><td></td></tr>");
//				build(html, pm,  ci.getMenus(), 0);
//			}
//		}
//
//		return html.append("</table>");
//	}
//	
//	private static void build(StringBuilder html, MenuPrivilege pm, 
//			List<MenuInfo> menus, final int deep) {
//		if (null != menus) {
//			for (MenuInfo mi : menus) {
//				MenuActionPrivilege pa = null;
//				if (null != pm)
//					pa = pm.get(mi.getId());
//				/*String v = mid + S + mi.getId();*/
//				int l = deep * 30 + 60;
//				html.append("<tr><td style='padding-left:").append(l);
//				html.append("px;'>");
//				ActionInfo ai = mi.getAction();
//				Collection<TabInfo> tabs = mi.tabs();
//				/*String b = P_A + v;
//				String d = P_T + v;*/
//				if (null != pa) {
//					html.append(IMG_SRC_RES_CSS_ICONS_ACCEPT_PNG);
//					html.append(mi.getName()).append("</td><td>");
//
//					if (null != ai) {
//						checkbox(html, pa.isAllAction(), "全部");
//						checkbox(html, pa, ActionInfo.ACT_EDIT, "编辑",
//								ai.isEditable());
//						checkbox(html, pa, ActionInfo.ACT_DELETE, "删除",
//								ai.isDeletable());
//						checkbox(html, pa, ActionInfo.ACT_STATUS, "状态",
//								ai.isStatusable());
//						checkbox(html, pa, ActionInfo.ACT_MOVE, "移动",
//								ai.isMovable());
//						for (Entry<String, String> a : ai.entrySet()) {
//							checkbox(html, pa, a.getKey(), a.getValue());
//						}
//					}
//					if (!tabs.isEmpty()) {
//						html.append("tabs:");
//						boolean f = false;
//						for (TabInfo t : tabs) {
//							if (f)
//								html.append(',');
//							else
//								f = true;
//							checkbox(html, pa.checkTab(t.getId()), t.getName());
//						}
//					}
//				} else {
//					html.append(mi.getName()).append("</td><td>");
//
//					if (null != ai) {
//						checkbox(html, false, "全部");
//						checkbox(html, "编辑",
//								ai.isEditable());
//						checkbox(html,  "删除",
//								ai.isDeletable());
//						checkbox(html,  "状态",
//								ai.isStatusable());
//						checkbox(html, "移动",
//								ai.isMovable());
//						for (Entry<String, String> a : ai.entrySet()) {
//							checkbox(html, a.getValue());
//						}
//					}
//					if (!tabs.isEmpty()) {
//						html.append("tabs:");
//						boolean f = false;
//						for (TabInfo t : tabs) {
//							if (f)
//								html.append(',');
//							else
//								f = true;
//							html.append(t.getName());
//						}
//					}
//				}
//				html.append("</td></tr>");
//				build(html, pm, mi.getMenus(), deep + 1);
//			}
//		}
//	}
//
//	private static void checkbox(StringBuilder html, List<String> pa, String n, String s) {
//		html.append(',');
//		checkbox(html, pa.contains(n), s);
//	}
//
//	private static void checkbox(StringBuilder html, List<String> pa,
//			String n, String s, boolean d) {
//		if (d)
//			checkbox(html, pa, n, s);
//	}
//
//	private static void checkbox(StringBuilder html, String s, boolean d) {
//		if (d)
//			checkbox(html, s);
//	}
//
//	private static void checkbox(StringBuilder html,  String s) {
//		html.append(',');
//		checkbox(html,  false, s);
//	}
//
//	private static void checkbox(StringBuilder html, boolean c, String s) {
//		/*html.append("<input type='checkbox' name='privileges' value='");
//		html.append(v).append(S).append(n);
//		if (c)
//			html.append("' checked='checked");
//		html.append("'/>").append(s);*/
//		if(c)
//			html.append(IMG_SRC_RES_CSS_ICONS_ACCEPT_PNG);
//		html.append(s);
//	}
//}
